﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 版权所有 (c) 2022   保留所有权利。
 * CLR版本：4.0.30319.42000
 * 机器名称：DESKTOP-UL84BU5
 * 公司名称：
 * 命名空间：KingerRobot.WanliMDC.SpiService.Services.BaseBussiness
 * 唯一标识：33a56905-9140-4b44-bcc6-b955e6efe383
 * 文件名：InWarehouse
 * 当前用户域：DESKTOP-UL84BU5
 * 
 * 创建者：zzl
 * 电子邮箱：1003590782@qq.com
 * 创建时间：2022/6/29 16:29:53
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>
namespace KingerRobot.MexicoSailunMDC.SpiService;

internal class InWarehouseImpl : IInWarehouseService
{

    private readonly static IRcsLocation _RcsLocation = new BRcsLocation();
    private readonly static IWcsLocSku _WcsLocSku = new BWcsLocSku();
    private readonly static IProdProduct _ProdProduct = new BProdProduct();
    public int AddInWarehouse(long locId)
    {
        try
        {
           
            // 查找库位信息
            var location = _RcsLocation.GetLocationById(locId);
            if (location is null)
            {
                WriteLog($"{locId},货位不存在");
                return 0;
            }
            var locCode = location.LocCode;
            // 获取胎胚信息
            var locSku = _WcsLocSku.GetWcsLocSkuByLocId(locId);
            if (locSku is null)
            {
                WriteLog($"{locId},货位没有胎胚");
                return 0;
            }
            var skuId = locSku.SkuId.GetValueOrDefault();

            // 获取产品信息
            var product = _ProdProduct.GetProductBindingInfoBySkuId(skuId);
            if (product is null)
            {
                WriteLog($"{locId},货位没有{skuId}产品信息");
                return 0;
            }
            var inDat = location.LocHasSkuTime; // 入库时间
            var productCode = product.POProdProduct?.ProductCode; // 产品编号
            var weight = product.POProdMaterial?.MaterialWeight;

            var result = 0;
            // TODO (注释)RpcHelper， 迁移到 BRpc 中实现
            // 添加入库信息
            //var service = K8.RSF.Client.Create<IMiddleMesService>();
            //var bean = new InWarehouse
            //{
            //    Barcode = productCode,
            //    Indat = inDat,
            //    Wgt = weight,
            //    Inloc = locCode
            //};
            // result = service.AddInWarehouse(bean);

            //WriteLog($"同步MES中间表返回值:{result},同步数据:{bean.ToJson()}:");
            return result;
        }catch (Exception ex)
        {
            WriteLog($"入库报错：{ex.Message}");
            return 0;
        }
    }
}
